数值数据的积分 您所在的位置:网站首页 matlab 积分模块 数值数据的积分

数值数据的积分

2024-03-31 17:48| 来源: 网络整理| 查看: 265

查看速度数据

考虑以下速度数据和相应的时间数据。

vel = [0 .45 1.79 4.02 7.15 11.18 16.09 21.90 29.05 29.05 ... 29.05 29.05 29.05 22.42 17.9 17.9 17.9 17.9 14.34 11.01 ... 8.9 6.54 2.03 0.55 0]; time = 0:24;

这些数据代表汽车的速度(米/秒),间隔为 1 秒,时间超过 24 秒。

绘制速度数据点并将各点用直线连接。

figure plot(time,vel,'-*') grid on title('Automobile Velocity') xlabel('Time (s)') ylabel('Velocity (m/s)')

斜率在加速时为正,恒速时为零,减速时为负。在 t = 0 的时间点,车辆处于静止,速度为 vel(1) = 0 米/秒。然后车辆以 vel(9) = 29.05 米/秒的速度加速,并在 t = 8 秒内达到最大速度,并保持这种速度 4 秒的时间。然后车辆在 3 秒之内减速到 vel(14) = 17.9 米/秒并最终静止。由于这个速度曲线有多处不连续,因此不能用单一连续函数来描述。

计算总行驶距离

trapz 使用数据点进行离散积分以创建梯形,所以它非常适合处理不连续的数据集。这种方法假设在数据点之间为线性行为,当数据点之间的行为是非线性时,精度可能会降低。为了说明这一点,可将数据点作为顶点在图表上画出梯形。

xverts = [time(1:end-1); time(1:end-1); time(2:end); time(2:end)]; yverts = [zeros(1,24); vel(1:end-1); vel(2:end); zeros(1,24)]; p = patch(xverts,yverts,'b','LineWidth',1.5);

trapz 可通过将区域分解成梯形来计算离散数据集下的面积。然后,函数将每个梯形面积累加来计算总面积。

通过使用 trapz 求速度数据积分来计算汽车的总行驶距离(对应的着色区域)。默认情况下,如果使用语法 trapz(Y),则假定点之间的间距为 1。但是,您可以使用语法 trapz(X,Y) 指定不同的均匀或非均匀间距 X。在这种情况下,time 向量中读数之间的间距是 1,因此可以使用默认间距。

distance = trapz(vel)distance = 345.2200

汽车在 t = 24 秒内行驶的距离约为 345.22 米。

绘制累积行驶距离

cumtrapz 函数与 trapz 密切相关。trapz 仅返回最终的积分值,而 cumtrapz 还在向量中返回中间值。

计算累积行驶距离并绘制结果。

cdistance = cumtrapz(vel); T = table(time',cdistance','VariableNames',{'Time','CumulativeDistance'})T=25×2 table Time CumulativeDistance ____ __________________ 0 0 1 0.225 2 1.345 3 4.25 4 9.835 5 19 6 32.635 7 51.63 8 77.105 9 106.15 10 135.2 11 164.25 12 193.31 13 219.04 14 239.2 15 257.1 ⋮ plot(cdistance) title('Cumulative Distance Traveled Per Second') xlabel('Time (s)') ylabel('Distance (m)')



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有